Since their introduction in the late 1970s, personal computers have undergone dramatic changes in system design and operating architecture. These changes have been driven by many factors including the growth of processor power, cost reduction for memory and data storage, and increased volume of sales. In many ways, the most pronounced area of change in system design has been the underlying operating system and its interaction with the application programs or "applications" on the computer to form the user interface. In this context, applications refer to the individual programs or groups of programs capable of performing user defined tasks and operations.
The dominant operating system of the 1980s was a product owned by The MicroSoft.RTM. Corporation and referred generally as "MS-DOS". Indeed, by the end of the decade, almost all personal computers sold included this operating system to control system devices and I/O operations on a personal computer. Applications were thus designed in large measure to interact with MS-DOS--which mandated a specific user interface. The user interface is defined as the outward appearance of the application command, input and output structures and is best characterized by information presented on the display screen and the modes of entering data or maneuvering about the various subsystems of the application. It has long been recognized that the user interface is a critical component in making computers efficient and easy to operate.
Early user interfaces dictated by the MS-DOS operating system utilized what is known as a command line operator. In essence, the interaction with the operating system involved entering commands at a display prompt, with these commands having specific and often idiosyncratic structure. Once entered, the system would process the command in accordance with the program controlling logic and display/print output as generated. This interface--while initially very popular among the technically astute--was ridiculed by others as difficult for the broad class of potential users. Indeed, in 1984, Apple Computer Inc. released a 32 bit operating system for use with its MacIntosh.RTM. class computers that eliminated the command line interface and substituted a graphical user interface (GUI) that populated the display screen with meaningful icons and the like. These icons were links to applications--and thus avoided the idiosyncratic command structure that typified MS-DOS systems. The Apple system represented a tremendous breakthrough in interface design and now represents the style standard to which all other operating systems emulate in some degree.
Indeed, a new interface was added to MS-DOS in the late 1980s--under the Windows tradename--which essentially removed the command line from the user interface and replaced it with a graphical user interface complete with application and command specific icons. The system permitted simultaneous access to multiple applications and interaction between applications, including the exchange of data and background processing. The Windows interface quickly became the industry standard.
However, as with earlier iterations, Windows.RTM. and other GUI applications are far from optimized from a user standpoint. In particular, all present GUIs including Windows.RTM., like their command line predecessors, deal with the interface on an application basis. Specifically, the application is the dominant element for coordinating user activity, as the interface provides a conduit to the application based on the user's direction.
This is a subtle but critical limitation in current interface designs. Essentially all users wish to interact with the computer system on a task, function and information basis--independent of the individual applications available on the system to perform the tasks or present the information. Indeed, if the user wishes current market data and industry reports on Ford Motor Co., he/she is not particularly interested on what network applications and word processors are used. The user is interested in rapid access to the desired information presented in a clear form independent of the application environment necessary to provide the information.
Moreover, today's computer systems are invariably structured to operate one or more applications simultaneously, a process that is known as system multitasking. Multitasking allows simultaneous data manipulation and presentation and thus greatly enhances the efficiency of the workstation. The ability to multitask in many ways created the need for shell programs, as discussed above, to manage the user interface to the applications and operating system. However, current shells are very limited in their command scope and users are often incapable of monitoring the simultaneous operation of three or more applications, and, in particular, configuring the multiple applications for effective operation in an efficient manner. Simply put, current shell design has many inadequacies that stem from their limited capabilities as application launchers. As system requirements grow in sophistication, the need for a more powerful and versatile shell manager has emerged as the primary bottleneck in workstation design.